import pandas as pd
import ipdb
import re
import string

def is_badcase(text):
    # 中文字符（不含标点和空格），长度 >= 50
    chinese_pattern = r'[\u4e00-\u9fff]{127,}'

    # 英文字符可以包含空格，但不能包含标点
    # 先把所有非英文字母和空格的符号过滤掉
    # 结果是一个数组
    english_candidates = re.findall(r'[A-Za-z ]{200,}', text)

    # 检查是否有中文段满足条件
    chinese_match = re.search(chinese_pattern, text)
    if chinese_match:
        # 如果存在中文字符超过127，则只截取127个字符
        print(f"发现连续中文段：{chinese_match.group(0)[:127]}...")
        return 1

    # 检查英文段中是否包含标点符号（即排除只含字母和空格的）
    # Python中的string.punctuation是一个字符串，包含了所有的ASCII标点符号字符‌。这个字符串可以用来检查一个字符是否为标点符号。!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
    punctuation = string.punctuation
    for segment in english_candidates:
        if not any(p in segment for p in punctuation):
            print(f"发现连续英文段：{segment[:200]}...")
            return 1

    return 0

# path = '/Users/zhfeng/Downloads/bi_hot_search.xlsx'
# df = pd.read_excel(path)
#
# for index,row in df.iterrows():
#     badcase = is_badcase(row['answer'])
#     if not badcase == row['badcase']:
#         print(row['answer'])
#         ipdb.set_trace()



def test():
    text = re.findall(r'[A-Za-z ]{4,}', "adduuus$898few3")
    print(text)
test()